home *** CD-ROM | disk | FTP | other *** search
/ Technotools / Technotools (Chestnut CD-ROM)(1993).ISO / lang_c / cgraphix / cflowd.c < prev    next >
Text File  |  1986-04-29  |  3KB  |  170 lines

  1. /* «RM120»«PL99999»«TS4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76» */
  2. #include    <stdio.h>
  3. #define    EXTERN    extern
  4. #include    <typedef.h>
  5.  
  6. void DrawArrowHor(X1, Y1, X2, Y2)
  7. int        X1, Y1, X2, Y2;
  8. {
  9.     DrawLine((double)X1,(double)Y1,(double)X2,(double)Y2);
  10.     if (X2 > X1) {
  11.         DrawLine((double)(X2-4),(double)(Y2-2),(double)X2,(double)Y2);
  12.         DrawLine((double)(X2-4),(double)(Y2+2),(double)X2,(double)Y2);
  13.     }
  14.     else {
  15.         DrawLine((double)(X2+5),(double)(Y2-2),(double)X2,(double)Y2);
  16.         DrawLine((double)(X2+5),(double)(Y2+2),(double)X2,(double)Y2);
  17.     }
  18. }
  19.  
  20.  
  21. void DrawArrowVer(X1,Y1,X2,Y2)
  22. int        X1, Y1, X2, Y2;
  23. {
  24.     DrawLine((double)X1,(double)Y1,(double)X2,(double)Y2);
  25.     if (Y2>Y1) {
  26.         DrawLine((double)(X2-2),(double)(Y2-3),(double)X2,(double)Y2);
  27.         DrawLine((double)(X2+2),(double)(Y2-3),(double)X2,(double)Y2);
  28.     }
  29.     else {
  30.         DrawLine((double)(X2-2),(double)(Y2+3),(double)X2,(double)Y2);
  31.         DrawLine((double)(X2+2),(double)(Y2+3),(double)X2,(double)Y2);
  32.     }
  33. }
  34.  
  35.  
  36. void Blink(Count,time)
  37. int        Count, time;
  38. {
  39.     int        i;
  40.  
  41.     for (i=1; i <= Count; i++) {
  42.         Delay(time);
  43.         InvertWindow();
  44.     }
  45. }
  46.  
  47. void Delay(time)
  48. int        time;
  49. {
  50.     long    i, j;
  51.  
  52.     j = 10L * time;
  53.     for (i = 0L; i < j; i++)
  54.         ;
  55.  
  56. }
  57.  
  58.  
  59. main()
  60. {
  61.     char    *Temp;
  62.     static char    str[4] = {"I="};
  63.     int        Count;
  64.  
  65.     InitGraphic();
  66.  
  67.     DefineWindow(1,0,0,79,185);
  68.     DefineWindow(2,12,20,25,40);
  69.     DefineWindow(3,15,55,22,75);
  70.     DefineWindow(4,11,110,26,130);
  71.     DefineWindow(5,47,90,56,110);
  72.  
  73.     ClearScreen();
  74.     SetColorWhite();
  75.     DefineHeader(1,"A FLOW CHART");
  76.     SetHeaderOn();
  77.     SelectWindow(1);
  78.     DrawBorder();
  79.     SetHeaderOff(0);
  80.  
  81.     SelectWindow(2);
  82.     DrawBorder();
  83.     DrawText(125,27,2,"START");
  84.     SetWindowModeOff();
  85.     DrawArrowVer(151,40,151,55);
  86.     SetWindowModeOn();
  87.  
  88.     SelectWindow(3);
  89.     DrawBorder();
  90.     DrawText(136,63,2,"I=1");
  91.     SetWindowModeOff();
  92.     DrawArrowVer(151,75,151,110);
  93.     SetWindowModeOn();
  94.  
  95.     SelectWindow(4);
  96.     DrawBorder();
  97.     DrawText(108,118,2,"IF I<=5");
  98.     DrawStraight(215,417,120);
  99.     SetWindowModeOff();
  100.     DrawArrowVer(417,120,417,110);
  101.     DrawArrowVer(151,130,151,155);
  102.     SetWindowModeOn();
  103.     SelectWindow(1);
  104.     DrawText(300,110,2,"YES");
  105.     DrawText(160,137,2,"NO");
  106.  
  107.     SelectWindow(5);
  108.     DrawBorder();
  109.     DrawText(390,98,2,"I=I+1");
  110.     SetWindowModeOff();
  111.     DrawLine((double)417,(double)90,(double)417,(double)80);
  112.     DrawArrowHor(417,80,151,80);
  113.  
  114.     SetAspect((double)1.0);
  115.     DrawCircle((double)151,(double)165,(double)25);
  116.     SelectWindow(1);
  117.     DrawText(137,163,2,"END");
  118.     SetWindowModeOn();
  119.     SetHeaderOn();
  120.  
  121.     CopyScreen();
  122.  
  123.     gotoxy(27,25);
  124.  
  125.     DefineWindow(2,15,21,22,39);
  126.     SelectWindow(2);
  127.     SetBackground(0);
  128.     DrawBorder();
  129.     InvertWindow();
  130.     Delay(1000);
  131.     InvertWindow();
  132.  
  133.     Temp = "123456";
  134.     str[2]=Temp[0];
  135.     MoveVer(35,TRUE);
  136.     DrawText(139,63,2,str);
  137.     Blink(30,50);
  138.     MoveVer(55,TRUE);
  139.  
  140.     for (Count=1; Count<=5; Count++) {
  141.         Delay(500);
  142.         MoveHor(33,TRUE);
  143.         MoveVer(-20,TRUE);
  144.         SetBackground(0);
  145.         DrawBorder();
  146.         str[2]=Temp[Count];
  147.         DrawText(400,98,2,str);
  148.         Blink(30,50);
  149.         MoveVer(-20,TRUE);
  150.         MoveHor(-33,TRUE);
  151.         MoveVer(40,TRUE);
  152.     }
  153.  
  154.     InvertWindow();
  155.     Delay(1000);
  156.     MoveVer(46,TRUE);
  157.     Blink(30,50);
  158.  
  159.     MoveHor(45,TRUE);
  160.     MoveVer(-136,TRUE);
  161.     MoveHor(-45,TRUE);
  162.     SetHeaderOn();
  163.  
  164.     inkey();
  165.  
  166.     LeaveGraphic();
  167.  
  168. }
  169.  
  170.